// SPU接口返回的ts数据类型

export interface ResponseData{
    code:number,
    message:string,
    ok:boolean
}

// SPU数据的类型
export interface SpuData{
    id?:number|string,
    spuName:string,
    description:string,
    category3Id:number|string,
    tmId:number|string,
    spuSaleAttrList:null|SaleAttr[],
    spuImageList:null|SpuImage[]
}

// 数组包含元素都是SPU类型
export type Records=SpuData[]

// 定义获取已有的SPU接口返回的数据ts类型
export interface HasResponseData extends ResponseData{
    data:{
        records:Records,
        total:number,
        size:number,
        current:number,
        searchCount:boolean,
        pages:number
    }
}

// 品牌数据的ts类型
export interface Trademark{
    id:number,
    tmName:string,
    logoUrl:string
}

// 品牌接口返回的数据类型
export interface AllTrademark extends ResponseData{
    data:Trademark[]
}

// 商品图片的ts类型
export interface SpuImage{
    id?:number,
    createTime?:string,
    updateTime?:string,
    spuId?:number,
    imgName?:string,
    imgUrl?:string,
    name?:string,
    url?:string
}

// 已有的Spu照片墙数据返回的ts类型
export interface SpuHasImag extends ResponseData{
    data:SpuImage[]
}

// 已有的销售属性值的ts类型
export interface SaleAttrValue{
    id?:number,
    createTime?:null,
    updateTime?:null
    spuId?:number,
    baseSaleAttrId:number|string,
    saleAttrValueName:string,
    saleAttrName?:string,
    isChecked?:null
}

// 存储已有的销售属性值的数组类型
export type spuSaleAttrValueList=SaleAttrValue[]

// 销售属性对象的ts类型
export interface SaleAttr{
    id?:number,
    createTime?:null,
    updateTime?:null,
    spuId?:number,
    baseSaleAttrId:number|string,
    saleAttrName:string,
    spuSaleAttrValueList:spuSaleAttrValueList,
    flag?:boolean,
    saleAttrValue?:string
}

// Spu已有的销售属性接口返回的数据ts类型
export interface SaleAttrResponseData extends ResponseData{
    data:SaleAttr[]
}

// 已有的全部Spu销售属性接口返回的数据ts类型
export interface HasSaleAttr{
    id:number,
    name:string
}

export interface HasSaleAttrResponseData extends ResponseData{
    data:HasSaleAttr[]
}




// Sku

export interface Attr{ // 平台属性的收集
    attrId:string|number, // 平台属性的ID
    valueId:string|number // 属性值的ID
}

export interface saleAttr{ // 销售属性
    saleAttrId:number|string, //属性ID
    saleAttrValueId:string|number // 属性值的ID
}

export interface SkuData{
    category3Id:string|number, // 三级分类的ID
    spuId:string|number,//已有的Spu的ID
    tmId:string|number,// Spu的品牌ID
    skuName:string,//sku名字
    price:string|number,// sku价格
    weight:string|number,//sku重量
    skuDesc:string,//sku描述
    skuAttrValueList?:Attr[],
    skuSaleAttrValueList?:saleAttr[],
    skuDefaultImg:string // sku图片的地址
}

// 获取Sku数据接口的ts类型
export interface SkuInfoData extends ResponseData{
    data:SkuData[]
}